package com.muyu.system.service;

import com.muyu.common.core.domain.Result;
import com.muyu.system.domain.DanmoMarketOrder;
import com.muyu.system.domain.DanmoMarketProducts;
import com.muyu.system.dto.DanmoMarketProductsDTO;
import com.muyu.system.dto.OrderStatusCountDTO;
import com.muyu.system.dto.UpdatePriceDTO;
import com.muyu.system.req.DanmoMarketProductsReq;
import com.muyu.system.req.DanmoProvincesCities;
import com.muyu.system.vo.OrderStatusCountVO;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;
import java.util.List;

/**
 * 书画市场商品信息Service接口
 *
 * @author yangle
 * @date 2024-09-07
 */
public interface IDanmoMarketProductsService
{
    /**
     * 查询书画市场商品信息
     *
     * @param id 书画市场商品信息主键
     * @return 书画市场商品信息
     */
    public DanmoMarketProducts selectDanmoMarketProductsById(Long id);

    /**
     * 查询书画市场商品信息列表
     *
     * @param danmoMarketProducts 书画市场商品信息
     * @return 书画市场商品信息集合
     */
    public List<DanmoMarketProducts> selectDanmoMarketProductsList(DanmoMarketProductsDTO danmoMarketProducts);

    /**
     * 新增书画市场商品信息
     *
     * @param danmoMarketProducts 书画市场商品信息
     * @return 结果
     */
    public Result insertDanmoMarketProducts(DanmoMarketProducts danmoMarketProducts);

    /**
     * 修改书画市场商品信息
     *
     * @param danmoMarketProducts 书画市场商品信息
     * @return 结果
     */
    public Result updateDanmoMarketProducts(DanmoMarketProducts danmoMarketProducts);

    /**
     * 批量删除书画市场商品信息
     *
     * @param ids 需要删除的书画市场商品信息主键集合
     * @return 结果
     */
    public Result deleteDanmoMarketProductsByIds(Long[] ids);

    /**
     * 删除书画市场商品信息信息
     *
     * @param id 书画市场商品信息主键
     * @return 结果
     */
    public int deleteDanmoMarketProductsById(Long id);

    Result removed(Long id);

    List<DanmoMarketProducts> priceSort(DanmoMarketProducts danmoMarketProducts);

    List<DanmoMarketProducts> selectDanmoProvincesCities(DanmoProvincesCities danmoProvincesCities);

    List<DanmoMarketProducts> selectDanmoLatestTime(DanmoMarketProducts danmoMarketProducts);

    DanmoMarketProducts selectDanmoMarketProducts(DanmoMarketProductsReq danmoMarketProductsReq);


    Result addOrder(DanmoMarketProducts danmoMarketProducts);

    Result addMarket(DanmoMarketProducts danmoMarketProducts);


    DanmoMarketOrder selectSingleOrder(DanmoMarketProductsReq danmoMarketProductsReq);

    Result selectMyOrder(DanmoMarketProductsReq danmoMarketProductsReq);

    Result selectOther(Long id);

    Result selectOtherOrder(DanmoMarketProductsReq danmoMarketProductsReq);


    /**
     * 修改价格
     * @param updatePriceDTO
     */
    void updatePrice(UpdatePriceDTO updatePriceDTO);


    /**
     * 订单状态统计
     * @param orderStatusCountDTO
     * @return
     */
    OrderStatusCountVO orderStatusCount(OrderStatusCountDTO orderStatusCountDTO);

//    Result payment(DanmoMarketOrder danmoMarketOrder);
}
